{\rtf1\ansi\ansicpg936\deff0\nouicompat\deflang2052\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fnil\fcharset134 ??;}{\f2\fnil\fcharset0 ??;}}
{\colortbl ;\red0\green0\blue255;\red169\green183\blue198;\red106\green135\blue89;\red204\green120\blue50;\red255\green198\blue109;\red128\green128\blue128;\red152\green118\blue170;\red104\green151\blue187;\red98\green151\blue85;}
{\*\generator Riched20 10.0.18362}{\info{\horzdoc}{\*\lchars ([\'7b\'a1\'a4\'a1\'ae\'a1\'b0\'a1\'b4\'a1\'b6\'a1\'b8\'a1\'ba\'a1\'be\'a1\'b2\'a1\'bc\'a3\'a8\'a3\'ae\'a3\'db\'a3\'fb\'a1\'ea\'a3\'a4}{\*\fchars !),.:;?]\'7d\'a1\'a7\'a1\'a4\'a1\'a6\'a1\'a5\'a8D\'a1\'ac\'a1\'af\'a1\'b1\'a1\'ad\'a1\'c3\'a1\'a2\'a1\'a3\'a1\'a8\'a1\'a9\'a1\'b5\'a1\'b7\'a1\'b9\'a1\'bb\'a1\'bf\'a1\'b3\'a1\'bd\'a3\'a1\'a3\'a2\'a3\'a7\'a3\'a9\'a3\'ac\'a3\'ae\'a3\'ba\'a3\'bb\'a3\'bf\'a3\'dd\'a3\'e0\'a3\'fc\'a3\'fd\'a1\'ab\'a1\'e9}}
\viewkind4\uc1 
\pard\widctlpar\kerning2\f0\fs40\'d2\'bb.Node.js\'b5\'c4\'b3\'f5\'c8\'cf\'ca\'b6\par
\par

\pard\widctlpar\li720\fs28 1.Node.js\'b2\'bb\'ca\'c7\'d2\'bb\'c3\'c5\'d3\'ef\'d1\'d4\'a1\'a3\par
\fs40\par
\fs28 2.Node.js\'b2\'bb\'ca\'c7\'d2\'bb\'b8\'f6\'bf\'e2(library)\'a3\'ac\'d2\'b2\'b2\'bb\'ca\'c7\'d2\'bb\'b8\'f6\'bf\'f2\'bc\'dc(frame)\'a1\'a3\par
\fs40\par
\fs28 3.Node.js\'ca\'c7\'d2\'bb\'b8\'f6JavaScript\'d4\'cb\'d0\'d0\'bb\'b7\'be\'b3\'a3\'ac\'d2\'b2\'be\'cd\'ca\'c7Node.js\'bf\'c9\'d2\'d4\'bd\'e2\'ce\'f6\'ba\'cd\'d6\'b4\'d0\'d0JavaScript\'b4\'fa\'c2\'eb\'a1\'a3\par
\fs40\par
\fs28 4.\'b9\'b9\'bd\'a8\'d3\'dachrome\'b9\'c8\'b8\'e8\'b5\'c4V8\'d2\'fd\'c7\'e6\par
\par
5.\'e4\'af\'c0\'c0\'c6\'f7\'d6\'d0\'b5\'c4JavaScript \fs40\line\tab\fs22\'a1\'a4BOM\line\tab\'a1\'a4DOM\line\tab\'a1\'a4ECMAscript \line\par

\pard\widctlpar\li1080\fs28 Node.js\'d6\'d0\'b5\'c4JavaScript \par
\fs22\tab\'a1\'a4\'ce\'deBOM\line\tab\'a1\'a4\'ce\'deDOM\line\tab\'a1\'a4ECMAscript \par
\fs28\par

\pard\widctlpar\li720 6.\'d4\'daNode\'d5\'e2\'b8\'f6JavaScript\'d6\'b4\'d0\'d0\'bb\'b7\'be\'b3\'d6\'d0\'ce\'aaJavaScript\'cc\'e1\'b9\'a9\'c1\'cb\'d2\'bb\'d0\'a9\'b7\'fe\'ce\'f1\'c6\'f7\'bc\'b6\'b1\'f0\'b5\'c4\'b2\'d9\'d7\'f7API \par
\par
7.npm\'ca\'c7\'ca\'c0\'bd\'e7\'c9\'cf\'d7\'ee\'b4\'f3\'b5\'c4\'bf\'aa\'d4\'b4\'bf\'e2\'c9\'fa\'cc\'ac\'cf\'b5\'cd\'b3,\'ca\'c7\'bb\'f9\'d3\'danode.js\'bf\'aa\'b7\'a2\'b5\'c4\'b0\'fc\'b9\'dc\'c0\'ed\'b9\'a4\'be\'df\'a1\'a3\'d3\'c9\'c8\'fd\'b8\'f6\'b6\'c0\'c1\'a2\'b5\'c4\'b2\'bf\'b7\'d6\'d7\'e9\'b3\'c9\'a3\'ba(\'cd\'f8\'d5\'bepackage\'a1\'a2\'d7\'a2\'b2\'e1\'b1\'edregistry\'a1\'a2\'c3\'fc\'c1\'ee\'d0\'d0\'b9\'a4\'be\'dfCLI)\par
\tab\'a1\'a4\fs20 npm install \'b0\'b2\'d7\'b0\'c4\'a3\'bf\'e9\par
\fs28\tab\'a1\'a4\fs20 npm uninstall \'d0\'b6\'d4\'d8\'c4\'a3\'bf\'e9 \par
\fs28\tab\'a1\'a4\fs20 npm ls \'b2\'e9\'bf\'b4\'b0\'b2\'d7\'b0\'b5\'c4\'c4\'a3\'bf\'e9\par
\fs28\par
8.nrm(npm registry manager )\'ca\'c7npm\'b5\'c4\'be\'b5\'cf\'f1\'d4\'b4\'b9\'dc\'c0\'ed\'b9\'a4\'be\'df\'a3\'ac\'d3\'d0\'ca\'b1\'ba\'f2\'b9\'fa\'cd\'e2\'d7\'ca\'d4\'b4\'cc\'ab\'c2\'fd\'a3\'ac\'ca\'b9\'d3\'c3\'d5\'e2\'b8\'f6\'be\'cd\'bf\'c9\'d2\'d4\'bf\'ec\'cb\'d9\'b5\'d8\'d4\'danpm\'d4\'b4\'bc\'e4\'c7\'d0\'bb\'bb\'a1\'a3\par
\tab\'a1\'a4\fs20 npm install -g nrm\'a3\'ac\'c8\'ab\'be\'d6\'b0\'b2\'d7\'b0nrm\par
\fs28\tab\'a1\'a4\fs20 nrm ls\'a3\'ac  \'b2\'e9\'bf\'b4\'bf\'c9\'d1\'a1\'b5\'c4\'d4\'b4\'a3\'ac\'b4\'f8*\'b5\'c4\'ca\'c7\'b5\'b1\'c7\'b0\'ca\'b9\'d3\'c3\'b5\'c4\'d4\'b4\par
\fs28\tab\'a1\'a4\fs20 nrm use xxxx, \'c7\'d0\'bb\'bb\'b5\'bdxxxx\'d4\'b4\'a3\'ac\par
\fs28\tab\'a1\'a4\fs20 nrm add <registry> <url>\'a3\'ac\'bf\'c9\'d2\'d4\'d4\'f6\'bc\'d3\'b6\'a8\'d6\'c6\'b5\'c4\'d4\'b4\'a3\'ac\'c6\'e4\'d6\'d0reigstry\'ce\'aa\'d4\'b4\'c3\'fb\'a3\'ac\tab\tab  url\'ce\'aa\'d4\'b4\'b5\'c4\'c2\'b7\'be\'b6\'a1\'a3\par
\fs28\tab\'a1\'a4\fs20 nrm del <registry>\'a3\'ac \'c9\'be\'b3\'fd\'b6\'d4\'d3\'a6\'b5\'c4\'d4\'b4\'a1\'a3\par
\par
\fs28 9.Node.js\'d6\'d0\'ce\'c4\'ce\'c4\'b5\'b5  {{\field{\*\fldinst{HYPERLINK http://nodejs.cn/api/fs.html#fs_file_system }}{\fldrslt{http://nodejs.cn/api/fs.html#fs_file_system\ul0\cf0}}}}\f0\fs28\par
\par

\pard\widctlpar\fs40\'b6\'fe.Node.js\'b5\'c4\'bb\'f9\'b1\'be\'d3\'ef\'b7\'a8\par

\pard\widctlpar\fi720\par
\fs28 1.fs\'a3\'a8\'ce\'c4\'bc\'fe\'cf\'b5\'cd\'b3\'a3\'a9fs \'c4\'a3\'bf\'e9\'cc\'e1\'b9\'a9\'c1\'cb\'d3\'c3\'d3\'da\'d3\'eb\'ce\'c4\'bc\'fe\'cf\'b5\'cd\'b3\'bd\'f8\'d0\'d0\'bd\'bb\'bb\'a5\'a3\'a8\'d2\'d4\'c0\'e0\lang1033\tab\lang2052\'cb\'c6\'d3\'da\'b1\'ea\'d7\'bc POSIX \'ba\'af\'ca\'fd\'b5\'c4\'b7\'bd\'ca\'bd\'a3\'a9\'b5\'c4 API\'a1\'a3\par
\tab\'a1\'a4\fs20 const fs = require('fs');\par
\par
\tab  fs.unlink('\'ce\'c4\'bc\'fe', (err) => \{\par

\pard\widctlpar\fi720\li1440   if (err) throw err;\par
  console.log('\'d2\'d1\'b3\'c9\'b9\'a6\'b5\'d8\'c9\'be\'b3\'fd\'ce\'c4\'bc\'fe');\par
\});\par
\par

\pard\widctlpar\fi720\'cb\'f9\'d3\'d0\'b5\'c4\'ce\'c4\'bc\'fe\'cf\'b5\'cd\'b3\'b2\'d9\'d7\'f7\'b6\'bc\'be\'df\'d3\'d0\'cd\'ac\'b2\'bd\'ba\'cd\'d2\'ec\'b2\'bd\'b5\'c4\'d0\'ce\'ca\'bd\'a1\'a3\par
\'d2\'ec\'b2\'bd\'b5\'c4\'d0\'ce\'ca\'bd\'d7\'dc\'ca\'c7\'b0\'d1\'cd\'ea\'b3\'c9\'bb\'d8\'b5\'f7\'d7\'f7\'ce\'aa\'c6\'e4\'d7\'ee\'ba\'f3\'d2\'bb\'b8\'f6\'b2\'ce\'ca\'fd\'a1\'a3 \'b4\'ab\'b8\'f8\'cd\'ea\'b3\'c9\'bb\'d8\'b5\'f7\'b5\'c4\'b2\'ce\'ca\'fd\'c8\'a1\'be\'f6\'d3\'da\'be\'df\'cc\'e5\'b7\'bd\tab\'b7\'a8\'a3\'ac\'b5\'ab\'b5\'da\'d2\'bb\'b8\'f6\'b2\'ce\'ca\'fd\'d7\'dc\'ca\'c7\'d4\'a4\'c1\'f4\'b8\'f8\'d2\'ec\'b3\'a3\'a1\'a3 \'c8\'e7\'b9\'fb\'b2\'d9\'d7\'f7\'b1\'bb\'b3\'c9\'b9\'a6\'b5\'d8\'cd\'ea\'b3\'c9\'a3\'ac\'d4\'f2\'b5\'da\'d2\'bb\'b8\'f6\'b2\'ce\'ca\'fd\'bb\'e1\'ce\'aa null \tab\'bb\'f2 undefined\'a1\'a3\par
\'b5\'b1\'ca\'b9\'d3\'c3\'cd\'ac\'b2\'bd\'b5\'c4\'b2\'d9\'d7\'f7\'ca\'b1\'a3\'ac\'b7\'a2\'c9\'fa\'b5\'c4\'d2\'ec\'b3\'a3\'bb\'e1\'b1\'bb\'c1\'a2\'bc\'b4\'b5\'d8\'c5\'d7\'b3\'f6\'a3\'ac\'bf\'c9\'d2\'d4\'ca\'b9\'d3\'c3 try\'a1\'adcatch \'b4\'a6\'c0\'ed\'a3\'ac\'d2\'b2\'bf\'c9\tab\'d2\'d4\'c3\'b0\'c5\'dd\'a1\'a3\par
\par
\fs28 2.path\'a3\'a8\'c2\'b7\'be\'b6\'a3\'a9path \'c4\'a3\'bf\'e9\'cc\'e1\'b9\'a9\'c1\'cb\'d2\'bb\'d0\'a9\'ca\'b5\'d3\'c3\'b9\'a4\'be\'df\'a3\'ac\'d3\'c3\'d3\'da\'b4\'a6\'c0\'ed\'ce\'c4\'bc\'fe\tab\'ba\'cd\'c4\'bf\'c2\'bc\'b5\'c4\'c2\'b7\'be\'b6\fs20\tab\par
\fs28\tab\'a1\'a4\fs20 const path = require('path');\par
\tab\fs28\'a1\'a4\fs20 path.basename('C:{{\field{\*\fldinst{HYPERLINK "\\\\\\\\temp\\\\\\\\myfile.html'"}}{\fldrslt{\\\\temp\\\\myfile.html'\ul0\cf0}}}}\f0\fs20 );   // \'b7\'b5\'bb\'d8: 'myfile.html'\par
\fs28\tab\'a1\'a4\fs20 path.basename('C:\\\\temp\\\\myfile.html', '.html');  // \'b7\'b5\'bb\'d8: \tab\tab\tab 'myfile'\par
\fs28\tab\'a1\'a4\fs20 path.dirname('/\'c4\'bf\'c2\'bc1/\'c4\'bf\'c2\'bc2/\'c4\'bf\'c2\'bc3');   // \'b7\'b5\'bb\'d8: '/\'c4\'bf\'c2\'bc1/\'c4\'bf\'c2\'bc2'\fs40\par
\par
\fs28 3.Node\'d6\'d0\'ca\'b9\'d3\'c3\'c4\'a3\'bf\'e9(\'ba\'cb\'d0\'c4\'c4\'a3\'bf\'e9\'a1\'a2\'b5\'da\'c8\'fd\'b7\'bd\'c4\'a3\'bf\'e9\'a1\'a2\'d3\'c3\'bb\'a7\'d7\'d4\'b6\'a8\'d2\'e5\'c4\'a3\'bf\'e9)\par
\tab\'a1\'a4\fs20 Node\'ce\'aaJavaScript\'cc\'e1\'b9\'a9\'c1\'cb\'ba\'dc\'b6\'e0\'b7\'fe\'ce\'f1\'c6\'f7\'bc\'b6\'b1\'f0\'b5\'c4API\'a3\'ac\'d5\'e2\'d0\'a9API\'be\'f8\'b4\'f3\'b6\'e0\'ca\'fd\'b6\'bc\'b1\'bb\'b0\'fc\'d7\'b0\lang1033\tab\tab\tab\lang2052\'b5\'bd\'c1\'cb\'d2\'bb\'b8\'f6\'be\'df\'c3\'fb\'b5\'c4\'ba\'cb\'d0\'c4\'c4\'a3\'bf\'e9\'d6\'d0\'c1\'cb\'a1\'a3\'c0\'fd\'c8\'e7\'ce\'c4\'bc\'fe\'b2\'d9\'d7\'f7\'b5\'c4fs\'ba\'cb\'d0\'c4\'c4\'a3\'bf\'e9\'a3\'achttp\'b7\'fe\'ce\'f1\'b9\'b9\'bd\'a8http\lang1033\tab\tab\lang2052\'c4\'a3\'bf\'e9\'a3\'ac\lang1033\tab\lang2052 path\'c2\'b7\'be\'a2\'b2\'d9\'d7\'f7\'c4\'a3\'bf\'e9\'a1\'a2os\'b2\'d9\'d7\'f7\'cf\'b5\'cd\'b3\'d0\'c5\'cf\'a2\'c4\'a3\'bf\'e9\'a1\'a3\'d2\'fd\'c8\'eb\'b8\'c3\'c4\'a3\'bf\'e9\'a1\'a3\'ca\'b9require\'a3\'ac\tab\tab\tab\'c4\'a3\'bf\'e9\'d6\'ae\'bc\'e4\'b5\'c4\'cd\'a8\'d0\'c5\'d0\'e8\'d2\'aa\'ca\'b9\'d3\'c3\'c4\'a3\'bf\'e9\'d6\'d0\'b5\'c4exports\'b6\'d4\'cf\'f3\'a1\'a3\fs28\par
\tab\'a1\'a4\fs20\'d3\'c3\'bb\'a7\'d7\'d4\'bc\'ba\'b1\'e0\'d0\'b4\'b5\'c4\'c4\'a3\'bf\'e9\'a3\'a8\'be\'cd\'ca\'c7\'d2\'bb\'b8\'f6js\'ce\'c4\'bc\'fe\'a3\'a9\'a3\'ac\'bf\'c9\'d2\'d4\'ca\'b9\'d3\'c3require\'b7\'bd\'b7\'a8\'bc\'d3\'d4\'d8\'a1\'a3\par
\par
\fs28 4.require\'b7\'bd\'b7\'a8\'b5\'c4\'c1\'bd\'b8\'f6\'d7\'f7\'d3\'c3\par
\tab\'a1\'a4\fs20\'bc\'d3\'d4\'d8\'ce\'c4\'bc\'fe\'c4\'a3\'bf\'e9\'b2\'a2\'d6\'b4\'d0\'d0\'c0\'ef\'c3\'e6\'b5\'c4\'b4\'fa\'c2\'eb\par
\fs28\tab\'a1\'a4\fs20\'c4\'c3\'b5\'bd\'b1\'bb\'bc\'d3\'d4\'d8\'ce\'c4\'bc\'fe\'c4\'a3\'bf\'e9\'b5\'bc\'b3\'f6\'b5\'c4\'bd\'d3\'bf\'da\'b6\'d4\'cf\'f3\par
\fs28\par
\par
5.\'cd\'ac\'b2\'bd\'b5\'b1\'c7\'b0\'b5\'c4\'c7\'eb\'c7\'f3\'ba\'cd\'cf\'ec\'d3\'a6\'bd\'e1\'ca\'f8\'b2\'c5\'bb\'e1\'b7\'a2\'b3\'f6\'cf\'c2\'d2\'bb\'b2\'bd\'a3\'ac\'c7\'eb\'c7\'f3\'ba\'cd\'cf\'ec\'d3\'a6\'d2\'bb\'c6\'f0\lang1033\tab\lang2052\'bb\'d8\'c0\'b4\'a1\'a3\'d2\'ec\'b2\'bd\'b5\'b1\'c7\'b0\'b5\'c4\'c7\'eb\'c7\'f3\'bd\'e1\'ca\'f8\'a3\'ac\'c2\'ed\'c9\'cf\'b7\'a2\'b3\'f6\'cf\'c2\'d2\'bb\'b8\'f6\'c7\'eb\'c7\'f3\'a3\'ac\'cf\'ec\'d3\'a6\'b0\'ae\'bb\'d8\'c0\'b4\lang1033\tab\lang2052\'b2\'bb\'bb\'d8\'c0\'b4\'a1\'a3\par
\par
6.get\'ba\'cdpost\'b5\'c4\'c7\'f8\'b1\'f0\'a3\'ba\par
get\'c3\'f7\'ce\'c4\'b5\'c4\'c7\'eb\'c7\'f3\'b4\'ab\'ca\'e4 \'ca\'c7\'bb\'f9\'d3\'da\'b5\'d8\'d6\'b7\'c0\'b8URL\'b4\'f8\'b2\'ce\'ca\'fd \'a3\'acpost\'ca\'c7\'b7\'c7\'c3\'f7\'ce\'c4\'d4\'da\tab\'c7\'eb\'c7\'f3\'cc\'e5request body\'c0\'ef\'c3\'e6\'b4\'ab\'b5\'dd\'b2\'ce\'ca\'fd\'a1\'a3\'a3\'a8req.query;\'d5\'e2\'ca\'c7get\'b5\'c4\'a3\'a9\tab\'a3\'a8request body\'d5\'e2\'ca\'c7post\'b5\'c4\'a3\'a9\par
\par
7.exports\'c4\'ac\'c8\'cf\'ca\'c7\'d2\'bb\'b8\'f6\'bf\'d5\'b6\'d4\'cf\'f3\'a3\'ac\'ca\'c7require\'b7\'bd\'b7\'a8\'b5\'c4\'b7\'b5\'bb\'d8\'d6\'b5\par

\pard\widctlpar\fi720\li720\'a1\'a4\fs20 exports\'d3\'c3\'c0\'b4\'ca\'b5\'cf\'d6\'b2\'bb\'cd\'ac\'c4\'a3\'bf\'e9\'d6\'ae\'bc\'e4\'b5\'c4\'cd\'a8\'d0\'c5\fs28\par
\'a1\'a4\fs20\'c4\'dc\'b9\'bb\'cf\'f2\'b6\'d4\'cf\'f3\'d6\'d0\'cc\'ed\'bc\'d3\'ca\'fd\'be\'dd\'a3\'ac\'c1\'ed\'d2\'bb\'b8\'f6\'c4\'a3\'bf\'e9\'bf\'c9\'d2\'d4\'cd\'a8\'b9\'fdrequire\'b7\'bd\'b7\'a8\'b7\'b5\'bb\'d8\'b5\'c4exports\'b6\'d4\'cf\'f3\'ca\'b9\'d3\'c3\'d5\'e2\'d0\'a9\'cc\'ed\'bc\'d3\'b5\'c4\'ca\'fd\'be\'dd\par
\par

\pard\widctlpar\fs40\lang1033\par
\'c8\'fd\lang2052 .Node.js\'b7\'fe\'ce\'f1\'b6\'cb\'b1\'e0\'b3\'cc\'b5\'c4\'cd\'f8\'c2\'e7\'bd\'e1\'b9\'b9\par
\par

\pard\widctlpar\li720\fs28 1.\'bc\'fd\'cd\'b7\'ba\'af\'ca\'fd\'ba\'cdfunction\'ba\'af\'ca\'fd\'b5\'c4\'c7\'f8\'b1\'f0\par
\tab\'a1\'a4\fs20\'d7\'f7\'d3\'c3\'d3\'f2\'a3\'ba\'ca\'b9\'d3\'c3function\'b6\'a8\'d2\'e5\'b5\'c4\'ba\'af\'ca\'fd\'a3\'acthis\'b5\'c4\'d6\'b8\'cf\'f2\'cb\'e6\'d7\'c5\'b5\'f7\'d3\'c3\'bb\'b7\'be\'b3\'b5\'c4\'b1\'e4\'bb\'af\'b6\'f8\'b1\'e4\'bb\'af\'b5\'c4\'a3\'ac\'b6\'f8\'bc\'fd\tab\'cd\'b7\'ba\'af\'ca\'fd\'d6\'d0\'b5\'c4this\'d6\'b8\'cf\'f2\'ca\'c7\'b9\'cc\'b6\'a8\'b2\'bb\'b1\'e4\'b5\'c4\'a3\'ac\'d2\'bb\'d6\'b1\'d6\'b8\'cf\'f2\'b5\'c4\'ca\'c7\'b6\'a8\'d2\'e5\'ba\'af\'ca\'fd\'b5\'c4\'bb\'b7\'be\'b3\par
\fs28\tab\'a1\'a4\fs20 function\'ca\'c7\'bf\'c9\'d2\'d4\'b6\'a8\'d2\'e5\'b9\'b9\'d4\'ec\'ba\'af\'ca\'fd\'b5\'c4\'a3\'ac\'b6\'f8\'bc\'fd\'cd\'b7\'ba\'af\'ca\'fd\'ca\'c7\'b2\'bb\'d0\'d0\'b5\'c4\'a1\'a3\par
\par
\fs28 2.http\'c7\'eb\'c7\'f3\lang1033 :\lang2052\'d0\'ad\'d2\'e9+IP+\'b6\'cb\'bf\'da+uri(\'cf\'df\'c2\'b7) \par

\pard\widctlpar\fi720\li720\tab\'a1\'a4\fs20 ip\'b5\'d8\'d6\'b7\'d3\'c3\'c0\'b4\'b6\'a8\'ce\'bb\'bc\'c6\'cb\'e3\'bb\'fa\fs28\par
\tab\'a1\'a4\fs20\'b6\'cb\'bf\'da\'d2\'bb\'b6\'a8\'bb\'e1\'ba\'cduri\'b0\'f3\'d2\'bb\'c6\'f0\par
\fs28\tab\'a1\'a4\fs20 uri\'ca\'c7\'be\'df\'cc\'e5\'d3\'a6\'d3\'c3\'c0\'ef\'c3\'e6\'b5\'c4\'d7\'ca\'d4\'b4\par
\fs28\tab\'a1\'a4\fs20 uri\'be\'cd\'ca\'c7\'c2\'b7\'d3\'c9 \'d2\'bb\'bc\'b6\'c2\'b7\'d3\'c9\'b6\'fe\'bc\'b6\'c2\'b7\'d3\'c9\par

\pard\widctlpar\li720\tab\tab\fs28\'a1\'a4\fs20\'d3\'a6\'d3\'c3\'b5\'c4\'c8\'eb\'bf\'da\'ca\'c7\'b6\'cb\'bf\'da\par
\par
\fs28 3.\'b7\'fe\'ce\'f1\'b6\'cb\'a3\'ba(\'bf\'d8\'d6\'c6\'b2\'e3-\'a1\'b7\'c2\'df\'bc\'ad\'b2\'e3-\'a1\'b7\'ca\'fd\'be\'dd\'b2\'e3)\'bb\'f1\'c8\'a1\'bf\'cd\'bb\'a7\'b5\'c4\'c7\'eb\'c7\'f3\'ba\'cd\'b2\'ce\'ca\'fd\'a3\'a8\'bf\'d8\'d6\'c6\'b2\'e3\'a3\'a9\'a1\'a2\'b6\'d4\'c7\'eb\'c7\'f3\'b2\'ce\'ca\'fd\'be\'cd\'d0\'d0\'bb\'ae\'b7\'d6\'a3\'a8\'c2\'df\'bc\'ad\'b2\'e3\'a3\'a9\'a1\'a3\'b7\'fe\'ce\'f1\'b6\'cb\'cd\'a8\'b9\'fd\'b5\'f7\'d3\'c3\tab\'ca\'fd\'be\'dd\'b2\'e3\'a3\'ac\'b0\'d1\'c2\'df\'bc\'ad\'b2\'e3\'bb\'ae\'b7\'d6\'b5\'c4\'b2\'ce\'ca\'fd\'b4\'e6\'c8\'eb\'b5\'bd\'ca\'fd\'be\'dd\'bf\'e2\'b5\'c4\'ca\'fd\'be\'dd\'b3\'d6\'be\'c3\'b2\'e3\'a1\'a3\'c9\'fa\'b3\'c9\tab\'b8\'f7\'d6\'d6\'b1\'ed\'c0\'fd\'c8\'e7 user\'b1\'ed .\par
\par
4.\'d7\'e8\'c8\'fb\'a3\'a8\'c8\'ce\'ce\'f1\'d2\'aa\'d2\'d4\'b6\'d3\'c1\'d0\'b5\'c4\'d0\'ce\'ca\'bd\'d6\'b4\'d0\'d0\'a3\'ac\'c7\'b0\'c3\'e6\'b5\'c4\'d6\'b4\'d0\'d0\'cd\'ea\'c1\'cb\'b2\'c5\'bf\'c9\'d2\'d4\'bc\'cc\'d0\'f8\lang1033\tab\lang2052\'cf\'c2\'c8\'a5\'a3\'a9\'ca\'c7\'b5\'a5\'cf\'df\'b3\'cc\'a1\'a3\'b7\'c7\'d7\'e8\'c8\'fb\'a3\'a8\'d6\'f7\'c8\'ce\'ce\'f1\'b5\'c4\'d6\'b4\'d0\'d0\'b2\'bb\'bb\'e1\'d3\'b0\'cf\'ec\'d7\'d3\'c8\'ce\'ce\'f1\'a3\'a9\'ca\'c7\'b6\'e0\'cf\'df\'b3\'cc.\par
\par
5.\'b3\'a3\'bc\'fb\'b4\'ed\'ce\'f3\par
\tab\tab\'a1\'a4\fs20 404  4\'bf\'aa\'cd\'b7\'b5\'c4\'ca\'c7\'bf\'cd\'bb\'a7\'b6\'cb\'ce\'ca\'cc\'e2 \par
\fs28\tab\tab\'a1\'a4\fs20 500  5\'bf\'aa\'cd\'b7\'b5\'c4\'b7\'fe\'ce\'f1\'c6\'f7\'b6\'cb\'ce\'ca\'cc\'e2\par
\fs28\tab\tab\'a1\'a4\fs20 200 \'b3\'c9\'b9\'a6\'b5\'c4\par
\fs28\tab\tab\'a1\'a4\fs20 302  \'c7\'eb\'c7\'f3\'d7\'aa\'b7\'a2\par
\par
\fs28 6.\'c8\'eb\'bf\'da\'ba\'af\'ca\'fd\'b5\'c4$function\'ba\'cd\'cd\'a8\'b3\'a3\'ca\'b9\'d3\'c3window.onload\'ca\'c7\'cd\'ac\'d1\'f9\'d0\'a7\'b9\'fb\'a3\'ac\'c7\'f8\'b1\'f0\'d4\'da\'d3\'da\'d5\'e2\'b8\'f6\'bf\'c9\'d2\'d4\'ca\'e9\'d0\'b4\'b6\'e0\'b4\'ce\'a3\'acwindow.onload\'d6\'bb\'c4\'dc\'ca\'e9\'d0\'b4\'d2\'bb\'b4\'ce\'a1\'a3\'d6\'b4\'d0\'d0\'b5\'c4\'ca\'b1\'bb\'fa\'b2\'bb\'cd\'ac\'a3\'ac\'d2\'bb\'b5\'a9dom\'bd\'e1\'b9\'b9\'e4\'d6\'c8\'be\'cd\'ea\'b1\'cf\'bc\'b4\'bf\'c9\'d6\'b4\'d0\'d0\'c4\'da\'b2\'bf\'b4\'fa\'c2\'eb\'a3\'ac\'b2\'bb\'b1\'d8\'b5\'c8\'b5\'bd\'cb\'f9\'d3\'d0\'cd\'e2\'b2\'bf\'d7\'ca\'d4\'b4\'bc\'d3\'d4\'d8\'cd\'ea\'b3\'c9\'a3\'ac\'b6\'f8window.onload\'ca\'c7\'b5\'c8\'d2\'b3\'c3\'e6\'ce\'c4\'b5\'b5\'a3\'ac\'cd\'e2\'b2\'bfJs\'ce\'c4\'bc\'fe css\'ce\'c4\'bc\'fe\'a3\'ac\'cd\'bc\'c6\'ac\'bc\'d3\'d4\'d8\'cd\'ea\'b3\'c9\'b2\'c5\'d6\'b4\'d0\'d0\'c4\'da\'b2\'bf\'b4\'fa\'c2\'eb\'a1\'a3\par
\par
7.responseText\'ca\'c7\'d6\'b8\'b7\'fe\'ce\'f1\'c6\'f7\'cf\'ec\'d3\'a6\'b7\'b5\'bb\'d8\'b5\'c4\'ce\'c4\'b1\'be\'d0\'c5\'cf\'a2\par
\par
8.async: false,\'ce\'aa\'cd\'ac\'b2\'bd\'c7\'eb\'c7\'f3  true\'ce\'aa\'d2\'ec\'b2\'bd\par
\par
9.\'c7\'eb\'c7\'f3\'cd\'b7\'c0\'ef\'c3\'e6\'bf\'c9\'d2\'d4\'b4\'e6\'b7\'c5\'ba\'dc\'b6\'e0\'d0\'c5\'cf\'a2\'a3\'ac\'b1\'c8\'c8\'e7\'c1\'ee\'c5\'c6\'b4\'d3\'c7\'eb\'c7\'f3\'cd\'b7\'d4\'d8\'c8\'eb\'a3\'ac\'b4\'d3\'c7\'b0\'b6\'cb\'b7\'a2\'ca\'fd\'be\'dd\'b0\'fc\'cb\'cd\'b5\'bd\'b7\'fe\'ce\'f1\'b6\'cb\'a3\'ac\'b7\'fe\'ce\'f1\'b6\'cb\'c4\'c3\'b5\'bd\'c7\'eb\'c7\'f3\'cd\'b7\'c0\'b4\'d1\'e9\'d6\'a4\'a1\'a3beforeSend:function()\{\}\'d4\'da\'c7\'eb\'c7\'f3\'b7\'a2\'cb\'cd\'d6\'ae\'c7\'b0\'a3\'ac\'cf\'e0\'b5\'b1\'d3\'da\'ca\'c7\'d2\'bb\'b8\'f6\'c0\'b9\'bd\'d8\'c6\'f7\'a1\'a3\par
\par
10.cookie  \'ce\'a8\'d2\'bb\'d2\'bb\'b8\'f6\'c7\'b0\'b6\'cb\'ba\'cd\'ba\'f3\'b6\'cb\'b9\'b2\'cf\'ed\'b1\'e4\'c1\'bf\'b5\'c4\'c7\'f8\'d3\'f2\'a3\'ac\'b4\'e6\'b4\'a2\'d4\'da\'bf\'cd\'bb\'a7\'b6\'cb\par
\'e4\'af\'c0\'c0\'c6\'f7 \'d4\'da\'cf\'f2\'b7\'fe\'ce\'f1\'b6\'cb\'b7\'a2\'c6\'f0\'c7\'eb\'c7\'f3\'ca\'b1\'a3\'ac\'bb\'e1\'b6\'c1\'c8\'a1\'b1\'be\'b5\'d8\'b8\'c3\'c7\'f8\'d3\'f2\'cf\'c2\'b5\'c4\'cb\'f9\'d3\'d0cookie\'b2\'a2\'d7\'f7\'ce\'aa\'ca\'fd\'be\'dd\'b0\'fc\'a3\'ac\'cb\'e6\'c7\'eb\'c7\'f3\'d2\'bb\'c6\'f0\'b7\'a2\'cb\'cd\'b5\'bd\'ca\'fd\'be\'dd\'b6\'cb\'a1\'a3\par
\tab\tab\'a1\'a4\fs20\'cd\'ac\'d2\'bb\'b8\'f6\'d3\'f2\'c3\'fb\'cf\'c2\'b5\'c4\'d2\'b3\'c3\'e6\'a3\'ac\'b9\'b2\'d3\'c3\'d2\'bb\'b8\'f6cookie\par

\pard\widctlpar\li2160\fs28\'a1\'a4\fs20\'b2\'bb\'cd\'ac\'e4\'af\'c0\'c0\'c6\'f7\'b7\'d6\'b1\'f0\'b9\'dc\'c0\'ed\'d7\'d4\'bc\'ba\'b5\'c4cookie\'bb\'a5\'b2\'bb\'d3\'b0\'cf\'ec\par
\fs28\'a1\'a4\fs20\'b7\'fe\'ce\'f1\'b6\'cb \'c4\'c3\'b5\'bdcookie\'ca\'c7\'cd\'a8\'b9\'fd\'c7\'eb\'c7\'f3\'b6\'d4\'cf\'f3\'c0\'b4\'bb\'f1\'c8\'a1\'a3\'ac\'c9\'e8\'d6\'c3cookie\'cd\'a8\'b9\'fd\'cf\'ec\'d3\'a6\'b6\'d4\'cf\'f3\'c0\'b4\'c9\'e8\'d6\'c3\'b5\'c4\'a1\'a3\par
\fs28\'a1\'a4\fs20 seconds\'ca\'c7\'d6\'b8cookie\'b9\'fd\'c6\'da\'b5\'c4\'ca\'b1\'bc\'e4\'a3\'ac  \'b2\'bb\'c9\'e8\'d6\'c3\'be\'cd\'ca\'c7\'c4\'ac\'c8\'cf0\'a3\'ac\'d6\'b8\'d4\'da\'b9\'d8\'b1\'d5\'e4\'af\'c0\'c0\'c6\'f7\'b5\'c4\'ca\'b1\'ba\'f2\'b9\'fd\'c6\'da\'a1\'a3\'c1\'a2\'c2\'ed\'ca\'a7\'d0\'a7\'ca\'c7seconds\'c9\'e8\'d6\'c3\'ce\'aa-1\par
\fs28\'a1\'a4\fs20\'c7\'b0\'b6\'cb\'d3\'c3setcookie \'ba\'cdgetcookie\'c0\'b4\'c9\'e8\'d6\'c3cookie\fs28\par

\pard\widctlpar\li720\par
11.public\'ca\'c7\'be\'b2\'cc\'ac\'ce\'c4\'bc\'fe\'bc\'d0\'a3\'ac\'c5\'e4\'d6\'c3\'ca\'c7\'d4\'da app.js\'c0\'ef\'c3\'e6\'c5\'e4\'d6\'c3  app.use(express.static(path.join(__dirname, 'public')));\par
\par
12.$ajax\'ca\'c7jQuery\'b5\'c4api  $\'ca\'c7jQuery\'c0\'ef\'c3\'e6\'b5\'c4\'b6\'d4\'cf\'f3  \par
\par

\pard\widctlpar\fs40\'cb\'c4.session\'bb\'e1\'bb\'b0\par
\par

\pard\widctlpar\li720\fs28 1.npm install express-session\'b0\'b2\'d7\'b0 \'d6\'f7\'d2\'aa\'b5\'c4\'b7\'bd\'b7\'a8\'be\'cd\'ca\'c7 session(options)\'a3\'ac\'c6\'e4\'d6\'d0 options \'d6\'d0\'b0\'fc\'ba\'ac\'bf\'c9\'d1\'a1\'b2\'ce\'ca\'fd\'a1\'a3\par

\pard\widctlpar\li2160\'a1\'a4\fs22 name: \'c9\'e8\'d6\'c3 cookie \'d6\'d0\'a3\'ac\'b1\'a3\'b4\'e6 session \'b5\'c4\'d7\'d6\'b6\'ce\'c3\'fb\'b3\'c6\'a3\'ac\'c4\'ac\'c8\'cf\'ce\'aa connect.sid \'a1\'a3\par
\fs28\'a1\'a4\fs22 store: session \'b5\'c4\'b4\'e6\'b4\'a2\'b7\'bd\'ca\'bd\'a3\'ac\'c4\'ac\'c8\'cf\'b4\'e6\'b7\'c5\'d4\'da\'c4\'da\'b4\'e6\'d6\'d0\'a3\'ac\'d2\'b2\'bf\'c9\'d2\'d4\'ca\'b9\'d3\'c3 redis\'a3\'acmongodb \'b5\'c8\'a1\'a3express \'c9\'fa\'cc\'ac\'d6\'d0\'b6\'bc\'d3\'d0\'cf\'e0\'d3\'a6\'c4\'a3\'bf\'e9\'b5\'c4\'d6\'a7\'b3\'d6\'a1\'a3\par
\fs28\'a1\'a4\fs22 secret: \'cd\'a8\'b9\'fd\'c9\'e8\'d6\'c3\'b5\'c4 secret \'d7\'d6\'b7\'fb\'b4\'ae\'a3\'ac\'c0\'b4\'bc\'c6\'cb\'e3 hash \'d6\'b5\'b2\'a2\'b7\'c5\'d4\'da cookie \'d6\'d0\'a3\'ac\'ca\'b9\'b2\'fa\'c9\'fa\'b5\'c4 \fs28\'a1\'a4\fs22 signedCookie \'b7\'c0\'b4\'db\'b8\'c4\'a1\'a3\par
\fs28\'a1\'a4\fs22 cookie: \'c9\'e8\'d6\'c3\'b4\'e6\'b7\'c5 session id \'b5\'c4 cookie \'b5\'c4\'cf\'e0\'b9\'d8\'d1\'a1\'cf\'ee\'a3\'ac\'c4\'ac\'c8\'cf\'ce\'aa (default: \{ path: '/\rquote , httpOnly: true, secure: false, maxAge: null \})\par
\fs28\'a1\'a4\fs22 genid: \'b2\'fa\'c9\'fa\'d2\'bb\'b8\'f6\'d0\'c2\'b5\'c4 session_id \'ca\'b1\'a3\'ac\'cb\'f9\'ca\'b9\'d3\'c3\'b5\'c4\'ba\'af\'ca\'fd\'a3\'ac \'c4\'ac\'c8\'cf\'ca\'b9\'d3\'c3 uid2 \'d5\'e2\'b8\'f6 npm \'b0\'fc\'a1\'a3\par
\fs28\'a1\'a4\fs22 rolling: \'c3\'bf\'b8\'f6\'c7\'eb\'c7\'f3\'b6\'bc\'d6\'d8\'d0\'c2\'c9\'e8\'d6\'c3\'d2\'bb\'b8\'f6 cookie\'a3\'ac\'c4\'ac\'c8\'cf\'ce\'aa false\'a1\'a3\par
\fs28\'a1\'a4\fs22 resave: \'bc\'b4\'ca\'b9 session \'c3\'bb\'d3\'d0\'b1\'bb\'d0\'de\'b8\'c4\'a3\'ac\'d2\'b2\'b1\'a3\'b4\'e6 session \'d6\'b5\'a3\'ac\'c4\'ac\'c8\'cf\'ce\'aa true\'a1\'a3\par

\pard\widctlpar\li720\par
\fs28 2.\'d2\'bb\'b8\'f6\'e4\'af\'c0\'c0\'c6\'f7\'d2\'bb\'b8\'f6\'bb\'e1\'bb\'b0\'a3\'ac\'e4\'af\'c0\'c0\'c6\'f7\'b9\'d8\'b1\'d5\'d2\'d4\'ba\'f3session\'bb\'e1\'bb\'b0\'bb\'e1\'bd\'e1\'ca\'f8\'a3\'ac\'d4\'d9\'b4\'f2\'bf\'aa\'e4\'af\'c0\'c0\'c6\'f7\'be\'cd\'bb\'e1\'d3\'d0\'c1\'ed\'d2\'bb\'b8\'f6\'bb\'e1\'bb\'b0\'a1\'a3\'b2\'bb\'cd\'ac\'b5\'e7\'c4\'d4\'b5\'c4key\'b2\'bb\'d2\'bb\'d1\'f9\'a3\'ac\'d6\'bb\'d2\'aa\'ca\'c7\'d5\'e2\'b8\'f6\'e4\'af\'c0\'c0\'c6\'f7\'a3\'ackey\'be\'cd\'b2\'bb\'bb\'e1\'b8\'c4\'b1\'e4\'a1\'a3key\'ca\'c7\'c8\'ab\'be\'d6\'ce\'a8\'d2\'bb\'b1\'ea\'ca\'b6\'a1\'a3\par
\par
3.sesison\'ca\'fd\'be\'dd\'b2\'bb\'ca\'c7\'b1\'a3\'b4\'e6\'d4\'dacookie\'d6\'d0\'a3\'ac\'bd\'f6\'bd\'f6sessionID\'b1\'a3\'b4\'e6\'b5\'bdcookie\'d6\'d0\'a1\'a3\par
\par
4.session \'c9\'fa\'c3\'fc\'d6\'dc\'c6\'da\'a3\'ba\'d3\'c3\'bb\'a7\'d2\'d1\'be\'ad\'b5\'c7\'c2\'bc\'a3\'ba\'d5\'e2\'b8\'f6\'ce\'a8\'d2\'bb\'b1\'ea\'ca\'b6\'bb\'e1\'d4\'da\'d3\'c3\'bb\'a7\'b5\'c7\'c2\'bc\'ca\'b1\'b2\'fa\'c9\'fa\'a3\'ac\'d3\'c3\'bb\'a7\'b5\'e3\'bb\'f7\'cd\'cb\'b3\'f6\'ca\'b1\'bb\'f2\'d5\'df\'b9\'d8\'b1\'d5\'e4\'af\'c0\'c0\'c6\'f7\'ca\'b1\'c7\'e5\'b3\'fd\'a1\'a3\par
\'d3\'c3\'bb\'a7\'ce\'b4\'b5\'c7\'c2\'bc\'a3\'ba \'d5\'e2\'b8\'f6\'ce\'a8\'d2\'bb\'b1\'ea\'ca\'b6\'bb\'e1\'d3\'c3\'d3\'c3\'bb\'a7\'bd\'f8\'c8\'eb\'cd\'f8\'d5\'be\'ca\'b1\'b2\'fa\'c9\'fa\'a3\'ac\'d3\'c3\'bb\'a7\'b9\'d8\'b1\'d5\'cb\'f9\'d3\'d0\'cd\'f8\'d5\'be\'cf\'e0\'b9\'d8\'d2\'b3\'c3\'e6\'ca\'b1\'c7\'e5\'b3\'fd\'a1\'a3\'d4\'da\'c9\'fa\'b3\'c9\'ba\'cd\'c7\'e5\'b3\'fd\'d6\'ae\'bc\'e4\'a3\'ac\'d4\'da\'cd\'f8\'d5\'be\'c4\'da\'b5\'c4\'d2\'b3\'c3\'e6\'c8\'ce\'d2\'e2\'cc\'f8\'d7\'aa\'a3\'acsession \'b1\'ea\'ca\'b6\'b2\'bb\'bb\'e1\'b7\'a2\'c9\'fa\'b1\'e4\'bb\'af\'a1\'a3\'b4\'d3 session \'bf\'aa\'ca\'bc\'b5\'bd\'c7\'e5\'b3\'fd\'a3\'ac\'ce\'d2\'c3\'c7\'bd\'d0\'d2\'bb\'b4\'ce\'bb\'e1\'bb\'b0\'a3\'ac\'d2\'b2\'be\'cd\'ca\'c7\'c9\'fa\'b3\'c9 session\'a1\'a3\par
\par
5.\'ce\'d2\'c3\'c7\'d0\'e8\'d2\'aa\'ca\'b9\'d3\'c3"use"\'b7\'bd\'b7\'a8\'c8\'a5\'b6\'a8\'d2\'e5\'d6\'d0\'bc\'e4\'bc\'fecookieParser\'ba\'cdSesion\'d5\'da\'d1\'da\'b2\'c5\'c4\'dc\'d5\'fd\'c8\'b7\'ca\'b9\'d3\'c3Express\'cc\'e1\'b9\'a9\'b5\'c4Session\'b9\'a6\'c4\'dc\'a1\'a3\'c4\'e3\'b1\'d8\'d0\'eb\'d4\'da\'c4\'e3\'b6\'a8\'d2\'e5\'c2\'b7\'d3\'c9\'d6\'ae\'c7\'b0\'d7\'f6\'c4\'c7\'d0\'a9\'b9\'a4\'d7\'f7\'a1\'a3\par
\par
6.//\'c5\'e4\'d6\'c3\'d6\'d0\'bc\'e4\'bc\'fe maxAge\'b5\'a5\'ce\'bb\'ce\'aams\par
app.use(session(\{\par
    secret: "keyboard cat",\par
    resave: false,\par
    saveUninitialized: true,\par
    cookie: ('name', 'value',\{maxAge:  5*60*1000,secure: false\})\par
\}));\par
\par
7.\'d6\'b8\'c1\'ee\'bf\'c9\'d2\'d4 \'d2\'b2\'d3\'a6\'b8\'c3\'c8\'ab\'be\'d6\'b0\'b2\'d7\'b0  \'d2\'c0\'c0\'b5\'b0\'fc\'cd\'a8\'b3\'a3\'b0\'b2\'d7\'b0\'d4\'da\'be\'d6\'b2\'bf \'d2\'f2\'ce\'aa\'c3\'bb\'d3\'d0\'b0\'ec\'b7\'a8\'c8\'b7\'b1\'a3\'cf\'ee\'c4\'bf\'ba\'cd\'c8\'ab\'be\'d6\'b1\'e9\'c1\'bf\'ca\'c7\'ca\'e5\'ca\'e5\'ba\'cd\'d6\'b6\'d7\'d3\'b5\'c4\'b9\'d8\'cf\'b5\'a1\'a3\par
\par
8.cookie\'b5\'c4\'d3\'c3\'b7\'a8\'a3\'ba\'c7\'b0\'ba\'f3\'b6\'cb\'b9\'b2\'cf\'ed\'b5\'c4\'b1\'e4\'c1\'bf\'c7\'f8\'d3\'f2\par

\pard\widctlpar\li2160\'a1\'a4\fs20\'bb\'f1\'c8\'a1cookie:\'d3\'c9\'c7\'eb\'c7\'f3\'b6\'d4\'cf\'f3\'c0\'b4\'ca\'b5\'cf\'d6\fs28\par
\'a1\'a4\fs20\'b2\'d9\'d7\'f7cookie\'a3\'ba\'b0\'fc\'c0\'a8\'d4\'f6\'c9\'be\'b8\'c4 \'d3\'c9\'cf\'ec\'d3\'a6\'b6\'d4\'cf\'f3\'c0\'b4\'ca\'b5\'cf\'d6\fs28\par

\pard\widctlpar\li720   session\'b5\'c4\'d3\'c3\'b7\'a8\'a3\'ba\'d6\'bb\'c4\'dc\'b7\'fe\'ce\'f1\'b6\'cb\'b2\'d9\'d7\'f7\'a3\'ac\'bd\'f6\'bd\'f6\'ca\'c7\'b4\'e6\'d4\'da\'d4\'da\'b7\'fe\'ce\'f1\'b6\'cb\par

\pard\widctlpar\li2160\'a1\'a4\fs20\'bb\'f1\'c8\'a1\'d3\'c9\'c7\'eb\'c7\'f3\'b6\'d4\'cf\'f3\'c0\'b4\'bb\'f1\'c8\'a1\fs28\par
\'a1\'a4\fs20\'b2\'d9\'d7\'f7\'d3\'c9\'c7\'eb\'c7\'f3\'b6\'d4\'cf\'f3\'c0\'b4\'b2\'d9\'d7\'f7\par

\pard\widctlpar\fs28\par
\fs40\'ce\'e5.svg\'c9\'fa\'b3\'c9\'d1\'e9\'d6\'a4\'c2\'eb\par

\pard\widctlpar\li720\fs28 1.\'b0\'b2\'d7\'b0npm install --save svg-captcha\par
\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720 2.\'ca\'b9\'d3\'c3\'b7\'bd\'b7\'a8\'a3\'ba\'d6\'b1\'bd\'d3\'ca\'b9\'d3\'c3captcha\'b5\'c4api\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li2160\'a1\'a4\fs20\lang1033\'d6\'b1\'bd\'d3\'b8\'f9\'be\'ddcaptcha\'c9\'fa\'b3\'c9\'b5\'c4\'b6\'d4\'cf\'f3\'d7\'f6\'bd\'e2\'ce\'f6\'a3\'ba1\'a3\'a9 \'d1\'e9\'d6\'a4\'c2\'eb\'a3\'a8text\'a3\'a9 2) \'cd\'bc\'c6\'ac\'c1\'f7\'a3\'a8\'d6\'b1\'bd\'d3\'cd\'a8\'b9\'fdapi\'b7\'c3\'ce\'ca\'a3\'ac\'bc\'b4\'bf\'c9\'b5\'c3\'b5\'bd\'cd\'bc\'c6\'ac\'c1\'f7\'a3\'ac\'b8\'c3\'c1\'f7\'ca\'c7\'bf\'c9\'d2\'d4\'d6\'b1\'bd\'d3\'b1\'bbimg\'b1\'ea\'c7\'a9\'cb\'f9\'bd\'e2\'ce\'f6\'b5\'c4\'a3\'a9\par
\fs28\lang2052\'a1\'a4\fs20\lang1033\'b7\'fe\'ce\'f1\'b6\'cb\'b7\'b5\'bb\'d8\'d1\'e9\'d6\'a4\'c2\'eb\'d6\'ae\'c7\'b0\'d0\'e8\'d2\'aa\'bb\'ba\'b4\'e6\'d1\'e9\'d6\'a4\'c2\'eb\'b5\'c4\'c4\'da\'c8\'dd\'a3\'a8\'b9\'a9\'ba\'f3\'d0\'f8\'d1\'e9\'d6\'a4\'d3\'c3\'a3\'a9\par
\fs28\lang2052\'a1\'a4\fs20\lang1033\'cd\'ea\'b3\'c9\'d1\'e9\'d6\'a4\'c2\'eb\'b5\'c4\'b5\'e3\'bb\'f7\'cb\'a2\'d0\'c2\'b9\'a6\'c4\'dc\lang2052\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720\cf2\kerning0\f1\fs19 router.get(\cf3 '/getCaptcha'\cf4 , \b function\cf2\b0 (req\cf4 , \cf2 res\cf4 , \cf2 next) \{\line     \cf4\b var \cf2\b0 captcha = svgCaptcha.\cf5 create\cf2 (\{\line         \cf6 // \'b7\'ad\'d7\'aa\'d1\'d5\'c9\'ab\line         \cf7 inverse\cf2 : \cf4\b false\b0 ,\line         \cf6 // \'d7\'d6\'cc\'e5\'b4\'f3\'d0\'a1\line         \cf7 fontSize\cf2 : \cf8 36\cf4 ,\line         \cf6 // \'d4\'eb\'c9\'f9\'cf\'df\'cc\'f5\'ca\'fd\line         \cf7 noise\cf2 : \cf8 2\cf4 ,\line         \cf6 // \'bf\'ed\'b6\'c8\line         \cf7 width\cf2 : \cf8 80\cf4 ,\line         \cf6 // \'b8\'df\'b6\'c8\line         \cf7 height\cf2 : \cf8 30\cf4 ,\line     \cf2\})\cf4 ;\line     \cf6 // \'b1\'a3\'b4\'e6\'b5\'bdsession,\'ba\'f6\'c2\'d4\'b4\'f3\'d0\'a1\'d0\'b4\line     //toLowerCase\'ba\'f6\'c2\'d4\'b4\'f3\'d0\'a1\'d0\'b4\line     // res.write\'bf\'c9\'d2\'d4\'b5\'f7\'d3\'c3\'b6\'e0\'b4\'ce\line     \cf2 req.\cf7 session\cf2 .\cf7 captcha \cf2 = captcha.\cf7 text\cf2 .\cf5 toLowerCase\cf2 ()\cf4 ;\line     \cf2 console.\cf5 log\cf2 (req.\cf7 session\cf2 .captcha)\cf4 ; \cf6 //0xtg \'c9\'fa\'b3\'c9\'b5\'c4\'d1\'e9\'d6\'a4\'c2\'eb\line     \cf2 res.\cf5 setHeader\cf2 (\cf3 'Content-Type'\cf4 , \cf3 'image/svg+xml'\cf2 )\cf4 ;\line     \cf2 res.\cf5 write\cf2 (String(captcha.\cf7 data\cf2 ))\cf4 ;\line     \cf2 res.\cf7 end\cf2 ()\line\})\par
\par
\cf0\kerning2\f0\fs28 3.\'bf\'cd\'bb\'a7\'b6\'cb\'b5\'e3\'bb\'f7\'cc\'e1\'bd\'bb\'d1\'e9\'d6\'a4\'c2\'eb\par
\cf4\kerning0\b\f1\fs19 function \cf5\b0 captcharValid\cf2 () \{\line     future.\cf5 ajax\cf2 (\{\line         \cf7 url\cf2 :\cf3 '/users/captcharValid'\cf4 ,\line         \cf7 type\cf2 :\cf3 'get'\cf4 ,\line         \cf7 data\cf2 :\{\line             \cf7 captcha\cf2 :$(\cf3 "#captcher"\cf2 ).\cf7 val\cf2 ()\line         \}\cf4 ,\line         \cf5 success\cf2 :\cf4\b function \cf2\b0 (result) \{\line             \cf5 alert\cf2 (\cf3 '\'d1\'e9\'d6\'a4\'b3\'c9\'b9\'a6'\cf2 )\line         \}\line\line     \})\line\}\par
\par
\line\cf0\kerning2\f0\fs28 4.\'b7\'fe\'ce\'f1\'b6\'cb\'d1\'e9\'d6\'a4\par
\cf2\kerning0\f1\fs19 router.get(\cf3 '/captcharValid'\cf4 ,\cf2 (req\cf4 , \cf2 resp)=>\{\line     \cf4\b let  \cf2\b0 captcha =req.\cf7 query\cf2 .captcha\cf4 ;\line     \cf2 console.\cf5 log\cf2 (captcha)\line     \cf4\b if \cf2\b0 (captcha == req.\cf7 session\cf2 .captcha) \{\line         resp.\cf5 send\cf2 ()\line     \}\cf4\b else \cf2\b0\{\line         \cf4\b throw new \cf2\b0 Error(\cf3 '\'d1\'e9\'d6\'a4\'ca\'a7\'b0\'dc'\cf2 )\line     \}\line\})\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\par

\pard\widctlpar\cf0\kerning2\f0\fs40\'c1\'f9.JSON Web Token(jwt)\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720\fs28 1.\'b0\'b2\'d7\'b0 npm install jsonwebtoken --save\par
\par
2.\'d4\'da\'cf\'ee\'c4\'bf\'c0\'ef\'cb\'e6\'b1\'e3\'cc\'ed\'bc\'d3\'d2\'bb\'b8\'f6.js\'ce\'c4\'bc\'fe \'bc\'d3\'c8\'eb\'d2\'d4\'cf\'c2\'b4\'fa\'c2\'eb\par
\cf6\kerning0\f1\fs19 / \'b0\'b2\'c8\'ab\'c0\'b9\'bd\'d8\'c6\'f7\line\cf4\b const \cf7\b0 jwt \cf2 = \cf5 require\cf2 (\cf3 "jsonwebtoken"\cf2 )\cf4 ;\line\line\cf9\i /**\line  * \'d1\'e9\'d6\'a4\'c8\'a8\'cf\'de\line  * \b @param \b0 token\line  * \b @param \b0 secretkey \'c3\'d8\'d4\'bf\line  * \b @param \b0 success\line  * \b @param \b0 error\line  */\line\cf4\b\i0 function \cf5\b0 verify \cf2 (token\cf4 ,\cf2 secretkey\cf4 ,\cf2 success\cf4 ,\cf2 error)\{\line     \cf7 jwt\cf2 .\cf7 verify\cf2 (token\cf4 ,\cf2 secretkey\cf4 ,\b function\cf2\b0 (err\cf4 ,\cf2 decode)\{\line         \cf4\b if\cf2\b0 (err)\{\line             \cf4\b if \cf2\b0 (error) \{\line                 error(err)\cf4 ;\line             \cf2\}\line         \}\cf4\b else\cf2\b0\{\line             \cf4\b if \cf2\b0 (success) \{\line                 success(decode)\cf4 ;\line             \cf2\}\line         \}\line     \})\line\}\line\par
\cf9\i **\line  * \'c7\'a9\'c3\'fb\line  * \b @param \b0 load \'d4\'d8\'ba\'c9 json\'b6\'d4\'cf\'f3 \'b4\'e6\'b4\'a2\'b4\'e6\'d4\'da\line  * \b @param \b0 secretkey \'c3\'d8\'d4\'bf\line  * \b @param \b0 expiresIn \'b9\'fd\'c6\'da\'ca\'b1\'bc\'e4 \'c3\'eb\line  * \b @returns \b0\{number | PromiseLike<ArrayBuffer>\}\line  */\line\line\cf4\b\i0 function \cf5\b0 sign \cf2 (load\cf4 ,\cf2 secretkey\cf4 ,\cf2 expiresIn) \{\line     \cf4\b var \cf2\b0 token = \cf7 jwt\cf2 .\cf7 sign\cf2 (load\cf4 ,\cf2 secretkey\cf4 ,\cf2\{\cf7 expiresIn\cf2 : expiresIn\})\cf4 ;\line     \b return \cf2\b0 token\cf4 ;\line\cf2\}\line\line\cf4\b let \cf2\b0 user =\{\cf7 id\cf2 :\cf8 111\cf4 ,\cf7 name\cf2 :\cf3 'user'\cf4 ,\cf7 password\cf2 :\cf8 123456\cf2\}\line\cf4\b delete  \cf2\b0 user.\cf7 password\line\cf4\b let \cf2\b0 token = \cf5 sign\cf2 (user\cf4 ,\cf3 '123456'\cf4 ,\cf8 10\cf2 )\cf4 ;\line\cf2 console.\cf5 log\cf2 (token)\line module.\cf7 exports \cf2 = \{\cf5 verify\cf4 ,\cf5 sign\cf2\}\cf4 ;\line\par
\cf0\kerning2\f0\fs28\'a1\'a4\fs20\'b0\'d1\'d2\'aa\'d1\'e9\'d6\'a4\'b5\'c4 Token \'ca\'fd\'be\'dd\'a3\'ac\'bb\'b9\'d3\'d0\'c7\'a9\'b7\'a2\'d5\'e2\'b8\'f6 Token \'b5\'c4\'ca\'b1\'ba\'f2\'d3\'c3\'b5\'c4\'c4\'c7\'b8\'f6\'c3\'dc\'d4\'bf\'b8\'e6\'cb\'df verify \'d5\'e2\'b8\'f6\'b7\'bd\'b7\'a8\'a3\'ac\'d4\'da\'d2\'bb\'b8\'f6\'bb\'d8\'b5\'f7\'c0\'ef\'c3\'e6\'d3\'d0\'c1\'bd\'b8\'f6\'b2\'ce\'ca\'fd\'a3\'acerror \'b1\'ed\'ca\'be\'b4\'ed\'ce\'f3\'a3\'acdecoded \'ca\'c7\'bd\'e2\'c2\'eb\'d6\'ae\'ba\'f3\'b5\'c4 Token \'ca\'fd\'be\'dd\'a1\'a3load\'d4\'d8\'ba\'c9 \'d3\'c3\'bb\'a7\'b6\'d4\'cf\'f3\'b3\'fd\'c1\'cb\'c3\'dc\'c2\'eb  expiresIn\'b9\'fd\'c6\'da\'ca\'b1\'bc\'e4  secretkey \'c3\'d8\'d4\'bf\par
\par
\fs28 3.\'d7\'e9\'b3\'c9\'b2\'bf\'b7\'d6\'b0\'fc\'c0\'a8\'a3\'ba sign \'ba\'cd\'bd\'e2\'c3\'dc\par
\fs20\par
\fs28 4.\'d7\'f7\'d3\'c3\'a3\'ba\'cf\'e0\'b5\'b1\'d3\'da\'d3\'c3\'c0\'b4\'bc\'d3\'c3\'dc\'c3\'c5\'c6\'b1\'d3\'c3\'b5\'c4\'a1\'a3\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li2160\'a1\'a4\fs20\'bc\'d3\'c3\'dc\'a3\'ba1\'a3\'a9 \'b1\'bb\'bc\'d3\'c3\'dc 2\'a3\'a9 \'d3\'c3\'ca\'b2\'c3\'b4\'bc\'d3\'c3\'dc\'a3\'a8\'bc\'d3\'d1\'ce\'a3\'a9\par
\fs28\'a1\'a4\fs20\'bc\'f2\'b5\'a5\'b0\'e6\'b5\'c4\'a3\'ba\'c3\'d8\'d4\'bf\'b9\'b2\'d3\'c3\'a3\'ac\'b1\'bb\'bc\'d3\'c3\'dc\'b5\'c4\'b6\'ab\'ce\'f7\'b2\'bb\'d2\'bb\'d1\'f9\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\fs40\'c6\'df.promise \'ba\'cd await + async\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720\par
\fs28 1.\'d7\'f7\'d3\'c3\'a3\'ba\'d3\'c3\'c0\'b4\'bd\'e2\'be\'f6\'bb\'d8\'b5\'f7\'b5\'d8\'d3\'fc\'ce\'ca\'cc\'e2\'a3\'ac\'b5\'ab\'ca\'c7\'d6\'bb\'ca\'c7\'bc\'f2\'b5\'a5\'b5\'c4\'b8\'c4\'b1\'e4\'b8\'f1\'ca\'bd\'a3\'ac\'b2\'a2\'c3\'bb\'d3\'d0\'b3\'b9\'b5\'d7\'bd\'e2\'be\'f6\'c9\'cf\'c3\'e6\'b5\'c4\'ce\'ca\'cc\'e2\'a3\'ac\par
\'d5\'e6\'d5\'fd\'d2\'aa\'bd\'e2\'be\'f6\'c9\'cf\'ca\'f6\'b5\'c4\'ce\'ca\'cc\'e2\'a3\'ac\'d2\'bb\'b6\'a8\'d2\'aa\'c0\'fb\'d3\'c3promise \'d4\'d9\'bc\'d3\'c9\'cfawait \'ba\'cd async\'b9\'d8\'bc\'fc\'d7\'d6\'ca\'b5\'cf\'d6\'d2\'ec\'b2\'bd\'d7\'aa\'cd\'ac\'b2\'bd\par
\par
2.\'b2\'ce\'ca\'fd\'bd\'e2\'ca\'cd\'a3\'ba\f2\'b7resolve\u-230?\u-30616?\u31034?\u26041?\u27861?\u20307?\u-28212?\u22836?\u25191?\u-30644?\u25104?\u21151?\u20043?\u21518?\u30340?\u22238?\u-29693?\u20989?\u25968?\'b7reject:\u-30616?\u31034?\u26041?\u27861?\u20307?\u-28212?\u22836?\u20986?\u-27367?\u20043?\u21518?\u30340?\u22238?\u-29693?\u20989?\u25968?\u12290?\'b7\u20989?\u25968?\u-230?\u25903?\u25345?\u22810?\u23618?\u23884?\u22871?\u30340?\u22238?\u-29693?\u20989?\u25968?\u20316?\u20026?\u26041?\u27861?\u20307?\u20869?\u23481?\u12290?\f0\par
\par
3.promise\'d2\'ec\'b2\'bd await\'d2\'ec\'b2\'bd\'d7\'aa\'cd\'ac\'b2\'bd  async\'cd\'ac\'b2\'bd\'d7\'aa\'d2\'ec\'b2\'bd\par
\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li2160\'a1\'a4\fs20\'b7\'bd\'b7\'a8\'cc\'e5\'c4\'da\'b2\'bf\'b5\'c4\'c4\'b3\'b8\'f6\'b1\'ed\'b4\'ef\'ca\'bd\'ca\'b9\'d3\'c3await\'d0\'de\'ca\'ce\'a3\'ac\par
\fs28\'a1\'a4\fs20\'c4\'c7\'c3\'b4\'d5\'e2\'b8\'f6\'b7\'bd\'b7\'a8\'cc\'e5\'cb\'f9\'ca\'f4\'b5\'c4\'b7\'bd\'b7\'a8\'b1\'d8\'d0\'eb\'d2\'aa\'d3\'c3async\'d0\'de\'ca\'ce\par
\fs28\'a1\'a4\fs20\'cb\'f9\'d2\'d4\'ca\'b9\'d3\'c3awit\'b5\'c4\'b7\'bd\'b7\'a8\'bb\'e1\'d7\'d4\'b6\'af\'c9\'fd\'bc\'b6\'ce\'aa\'d2\'ec\'b2\'bd\'b7\'bd\'b7\'a8\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li720\fs28 4.\'d4\'cb\'d0\'d0\'a3\'ba\par

\pard\brdrl\brdrdash\brdrw15 \brdrt\brdrdash\brdrw15 \brdrr\brdrdash\brdrw15 \brdrb\brdrdash\brdrw15 \widctlpar\li2160\'a1\'a4\fs20 new\'b5\'c4\'ca\'b1\'ba\'f2\'a3\'ac\'b7\'bd\'b7\'a8\'cc\'e5\'be\'cd\'c1\'a2\'c2\'ed\'d6\'b4\'d0\'d0\'a1\'a3\fs28\par
\'a1\'a4\fs20 new Promise(function(resolve, reject)\{// \'d2\'b5\'ce\'f1\'b4\'fa\'c2\'eb\})\par
\par

\pard\widctlpar\tab\fs28 5.\'d7\'b4\'cc\'ac\'a3\'ba\'a3\'bapending(\'bd\'f8\'d0\'d0\'d6\'d0)\'a3\'acresolved(\'d2\'d1\'cd\'ea\'b3\'c9)\'a3\'acrejected(\'d2\'d1\tab\'ca\'a7\'b0\'dc)\par
\par
\tab 6.await\'ba\'f3\'c3\'e6\'b5\'c8\'b4\'fd\'b5\'c4\'ca\'c7\'d2\'bb\'b8\'f6\'bd\'e1\'b9\'fb\'a3\'ac\'b2\'bb\'bd\'f6\'bd\'f6\'bf\'c9\'d2\'d4\'b5\'c8\'b4\'fd\'d2\'bb\'b8\'f6promise\'b6\'d4\tab\'cf\'f3\'a3\'ac\'d2\'b2\'bf\'c9\'d2\'d4\'ca\'c7\'b7\'b5\'bb\'d8\'d6\'b5\'a3\'bbasync\'ba\'af\'ca\'fd\'ca\'c7\'b7\'b5\'bb\'d8\'b5\'c4\'ca\'c7\'d2\'bb\'b8\'f6promise\'b6\'d4\'cf\'f3\'a3\'ac\tab\'d2\'bb\'b0\'e3\'ca\'c7\'d4\'daasync\'c0\'efreturn\'b7\'b5\'bb\'d8\'d6\'b5\'a3\'ac\'c8\'e7\'b9\'fb\'c3\'bb\'d3\'d0\'b7\'b5\'bb\'d8\'d6\'b5\'a3\'ac\'cb\'fc\'bb\'e1\'b7\'b5\'bb\'d8 \tab Promise.resolve(undefined)\'a3\'ac\'b5\'ab\'d2\'b2\'b2\'bb\'bb\'e1\'d7\'e8\'c8\'fb\'ba\'f3\'c3\'e6\'b5\'c4\'d3\'ef\'be\'e4\'d6\'b4\'d0\'d0\'a3\'bb\tab await\'ba\'f3\'c3\'e6\'b5\'c4\'d6\'b5\'bf\'c9\'d2\'d4\'ca\'c7async\'b7\'b5\'bb\'d8\'b5\'c4promise\'a3\'ac\'d2\'b2\'bf\'c9\'d2\'d4\'ca\'c7\'bc\'f2\'b5\'a5\'b5\'c4\tab function\'ba\'af\'ca\'fd\'a3\'ac\'cb\'fc\'d0\'e8\'d2\'aa\'b0\'fc\'ba\'ac\'d4\'daasync\'ba\'af\'ca\'fd\'c4\'da\'a3\'bb\'b2\'a2\'c7\'d2\'cd\'a8\'b9\'fdtry\{\}\tab catch\{\}\'c0\'b4\'bd\'e2\'be\'f6promise.reject()\'b1\'a8\'b4\'ed\'b5\'c4\'ce\'ca\'cc\'e2\'a1\'a3\par
\par
\par
    7.\'ca\'b5\'bc\'ca\'b2\'d9\'d7\'f7\'a3\'ba\par
\tab 1\'a1\'a2\'d4\'da\'d3\'c3\'bb\'a7\'b5\'c7\'c2\'bc\'b3\'c9\'b9\'a6\'d6\'ae\'ba\'f3\'ca\'b9\'d3\'c3jwt\'b6\'d4\'d3\'c3\'bb\'a7\'b5\'c4\'bb\'f9\'b1\'be\'d0\'c5\'cf\'a2\'bd\'f8\'d0\'d0\'bc\'d3\'c3\'dc\'a3\'a8\'d7\'a2\tab\'d2\'e2\'d2\'aa\'cc\'e1\'b3\'f6\'c3\'dc\'c2\'eb\'ca\'f4\'d0\'d4\'a3\'a9\par
\tab 2\'a1\'a2\'bc\'d3\'c3\'dc\'d6\'ae\'ba\'f3\'a3\'ac\'bd\'abtoken\'b7\'b5\'bb\'d8\'b5\'bd\'c7\'b0\'b6\'cb\'a3\'ac\'b4\'e6\'b4\'a2\'b5\'bdlocalStorage\par
\tab 3\'a1\'a2\'c3\'bf\'b4\'ce\'c7\'eb\'c7\'f3\'a3\'ac\'d4\'da\'c7\'eb\'c7\'f3\'b7\'a2\'cb\'cd\'d6\'ae\'c7\'b0\'a3\'ac\'bd\'ablocalStorage\'c0\'ef\'cd\'b7\'b5\'c4\'c1\'ee\'c5\'c6\'a3\'ac\tab\'b5\'b1\'d7\'f6\'c7\'eb\'c7\'f3\'cd\'b7\'a3\'ac\'d2\'bb\'c6\'f0\'b7\'a2\'cb\'cd\'b5\'bd\'b7\'fe\'ce\'f1\'b6\'cb\par
\tab 4\'a1\'a2\'b7\'fe\'ce\'f1\'b6\'cb\'d5\'eb\'b6\'d4\'d0\'e8\'d2\'aa\'d1\'e9\'c8\'a8\'a3\'a8\'bc\'f8\'c8\'a8\'a3\'a9\'b5\'c4api\'bd\'f8\'d0\'d0\'b6\'a8\'d6\'c6\'bb\'af\'c0\'b9\'bd\'d8\'a3\'a8\'c7\'b0\'d6\'c3\'c0\'b9\tab\'bd\'d8\'c6\'f7\'a3\'a9\par
\tab 5\'a1\'a2\'bd\'ab\'c0\'b9\'bd\'d8\'cf\'c2\'c0\'b4\'b5\'c4req\'c0\'ef\'cd\'b7\'b5\'c4\'c1\'ee\'c5\'c6\'c8\'a1\'b3\'f6\'c0\'b4\'a3\'ac\'b2\'a2\'d7\'f6\'bd\'e2\'c3\'dc\'b2\'d9\'d7\'f7\par
\tab --\'a1\'b71\'a3\'a9\'bd\'e2\'c3\'dc\'b3\'c9\'b9\'a6\'a3\'ac\'bd\'ab\'bd\'e2\'c3\'dc\'b3\'f6\'c0\'b4\'b5\'c4\'b6\'d4\'cf\'f3\'a3\'ac\'bc\'b4\'d3\'c3\'bb\'a7\'b5\'c4\'bb\'f9\'b1\'be\'d0\'c5\'cf\'a2\'b6\'d4\'cf\'f3\'a3\'ac\tab\'b2\'a2\'bd\'ab\'b8\'c3\'bb\'f9\'b1\'be\'d0\'c5\'cf\'a2\'b6\'d4\'cf\'f3\'b4\'e6\'b5\'bd\'c7\'eb\'c7\'f3\'cd\'b7\'c0\'ef\'cd\'b7\'c8\'a5\'a3\'a8\'b5\'a5\'cf\'df\'b3\'cc\'b1\'e4\'c1\'bf-\'d3\'c3\'ca\'b1\'bc\'e4\'bb\'bb\'bf\'d5\tab\'bc\'e4\'a3\'a9\'a3\'ac\'b2\'a2\'d6\'b4\'d0\'d0\'b2\'bd\'d6\'e86\par
\tab --\'a1\'b72\'a3\'a9\'bd\'e2\'c3\'dc\'ca\'a7\'b0\'dc\'a3\'ac\'c7\'eb\'c7\'f3\'bd\'e1\'ca\'f8\'a3\'ac\'b2\'a2\'b1\'a8\'b4\'ed\'a3\'a8\'bb\'e1\'bb\'b0\'d2\'d1\'b9\'fd\'c6\'da\'a3\'ac\'c7\'eb\'d6\'d8\'d0\'c2\'b5\'c7\tab\'c2\'bc\'a3\'ac\'c7\'b0\'b6\'cb\'b5\'c4\'b1\'ed\'cf\'d6\'cd\'a8\'b3\'a3\'ca\'c7\'d6\'b1\'bd\'d3\'d6\'d8\'b6\'a8\'cf\'f2\'b5\'bd\'b5\'c7\'c2\'bc\'d2\'b3\'a3\'a9\par
\tab 6\'a1\'a2\'d6\'b4\'d0\'d0\'d2\'b5\'ce\'f1\'b4\'fa\'c2\'eb\'a3\'ac\'c8\'e7\'b9\'fb\'d6\'b4\'d0\'d0\'b5\'c4\'b9\'fd\'b3\'cc\'d0\'e8\'d2\'aa\'d3\'c3\'b5\'bd\'d3\'c3\'bb\'a7\'d0\'c5\'cf\'a2\'a3\'ac\'c4\'c7\'c3\'b4\'b2\'bb\'d2\'aa\tab\'d4\'d9\'b4\'d3\'ca\'fd\'be\'dd\'bf\'e2\'c0\'ef\'cd\'b7\'c8\'a5\'b2\'e9\'d1\'af\'ca\'fd\'be\'dd\'a3\'ac\'d6\'b1\'bd\'d3\'b4\'d3\'c7\'eb\'c7\'f3\'cd\'b7\'c0\'ef\'cd\'b7\'c0\'cc\'bc\'b4\'bf\'c9\par
}
 